#include <stdio.h>
#include <stdlib.h>
/*练习：有若干个人员的数据，其中有学生和教师。学生的数据中包括：姓名、号码、性别、职业、班级。
教师的数据包括：姓名、号码、性别、职业、职务。要求用同一个表格来处理(统一输入输出)。*/
// 声明一个公用体类型  保存的 班级/职务
union Categ
{
    int classs;        // 班级
    char position[10]; // 职务
};

struct p
{
    int num;       // 号码
    char name[10]; // 姓名
    char sex;      // 性别
    char job;      // 职业  s:学生   t:教师
    union Categ category;
} person[2]; // 声明了一个结构体类型 存储个人信息 并定义一个含2个元素的数组

void InputData(void)
{
    int i;

    for (i = 0; i < 2; i++)
    {
        printf("号码：");
        scanf("%d", &person[i].num);
        printf("姓名：");
        scanf("%s", person[i].name);
        getchar();
        printf("性别:");
        scanf("%c", &person[i].sex);
        getchar();
        printf("职业：s/t");
        scanf("%c", &person[i].job);
        getchar();
        // 对职业进行判断  如果是学生 输入 班级   如果老师  输入职务
        if (person[i].job == 's' || person[i].job == 'S')
        {
            printf("输入班级：");
            scanf("%d", &person[i].category.classs);
        }
        else if (person[i].job == 't' || person[i].job == 'T')
        {
            printf("输入职务：");
            scanf("%s", person[i].category.position);
        }
    }
}

void OutputData(void)
{
    int i;
    // 输出列表中的个人信息详细数据
    for (i = 0; i < 2; i++)
    {
        printf("号码：%d\t 姓名：%s\t性别：%c\t", person[i].num, person[i].name, person[i].sex);
        if (person[i].job == 's' || person[i].job == 'S') // 学生
        {
            printf("职业：学生\t班级：%d\n", person[i].category.classs);
        }
        else if (person[i].job == 't' || person[i].job == 'T')
        {
            printf("职业：教师\t职务：%s\n", person[i].category.position);
        }
    }
}

int main(int argc, char *argv[])
{
    InputData();  // 输入数据
    OutputData(); // 输出数据

    return 0;
}